GAME−MZインタプリタ アスキー 1979年10月号掲載 マシン語 05800H−05EFFH S:5800 起動方法 モニタから起動  コールドスタート 05800H  ホット スタート 05802H +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ |   《命  令》     |  《一般形》  |            《意      味》                | |−−−−−−−−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |<システム関係>      |         |                                      | |LIST(All)     |0        |すべてのプログラムをリストをする                      | |    (From)    |行番号/     |行番号の行から最後までリストする                      | |RUN           |#=1      |プログラムの初めから実行                          | |    (From)    |#=行番号    |行番号から実行(なければそれより大きい最初の行)              | |NEW           |&=0      |PG先頭アドレス(=)をPG末ポインターに代入し、              | |              |         |その位置にEOFマーク($FF)を書き込む                 | |OPEN FILE     |&:0)=$FF |EOFマークをOPEN状態($FF)にする                 | |LOCK FILE     |&:0)=$F0 |EOFマークをLOCK状態($F0)(修正禁止)にする。          | |SERACH END    |= =      |PG末ポインター(&)をEOFマークのアドレスにセットする。         | |CHANGE PROGRAM|=n       |PG先頭ポインター(=)をnのアドレスにし、                 | |BIGIN POINTER |         |PG末ポインター(&)をそこから最初にあるEOFマークにセットする      | |CHANGE RAM END|*=n      |RAM末ポインター(*)をnのアドレスにセットする。             | |−−−−−−−−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |<出力関係>        |         |                                      | |PR LEFT       |?=n      |nの値を10進左づめ出力                          | |PR RIGHT      |?(m)=n   |nの値をmケタで10進右づめ出力(1=<m=<255)           | |PR 4HEX       |??=n     |nの値を4ケタの16進数で出力                       | |PR 2HEX       |?$=n     |nの値の下位バイトを2ケタの16進数で出力                 | |PR CHR        |$=n      |nの値の下位バイトを一文字のASCIIコードで出力             | |TAB           |.=n      |nの値だけ空白を出力(0<=n=<255)                 | |CRLF          |/        |改行する                                  | |文字列出力         |”文字”     |”で囲まれた文字列を出力する(改行子/と併用できる)            | |−−−−−−−−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |<入力関係>(入力変数)  |         |                                      | |INPUT         |?        |変数として使用「算術式」を一行入力してその値をとる。            | |INPUT CHR     |$        |変数として使用「一文字」入力してのASCIIコードを            | |              |         |下位1バイトとする(上位1バイトは0)                   | |−−−−−−−−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |<制御関係>        |         |                                      | |LET           |変数=n     |A=B+C :nの値を左辺の変数に代入する。                | |IF            |;=n      |nの値が真(≠0)なら次の「文」に行く                   | |              |         |nの値が偽(=0)なら次の「行」に行く                   | |<制御関係>        |         |                                      | |GOTO          |#=n      |nの値の行へ行く。(n=0なら何もしない)                 | |END(STOP)     |#=−1     |実行を終る。                                | |GOSUB         |!=n      |文末位置を第2スタックに納めて、nの値の行番号へ行く(n=0なら何もしない)| |RETURN        |]        |文末位置を第2スタックから取り出し、そこに戻る               | |FOR−TO        |代入文,n    |代入文を実行し、nの値を終値パラメーターとして、              | |              |         |文末位置と共にを第2スタックに納める                    | |NEXT(STEP)    |@=n      |nの値を=の次の文字(制御変数)に代入し、                 | |              |         |その値が第2スタック中の終値パラメーターを超えていれば、次の文を実行する。 | |              |         |超えていない場合は、第2スタック中の文末位置へ戻る             | |DO            |@        |0を終値パラメーターとし文末位置と共に第2スタックに納める         | |UNTIL         |@=(n)    |nの値が0(第2スタック中の終値パラメーター)より大なら(真)次の行へ行く、| |              |         |0か負なら(偽)第2スタック中の文末位置へ戻る               | |−−−−−−−−−−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |<その他>         |         |                                      | |SET RND       |’=n      |乱数レジスターにnの値を設定する                      | |RND(n)        |変数=’n    |1〜nまでの乱数を発生、変数に代入する                   | |REM           |行番号S     |行番号のあと空白を置かなければ注釈文となる                 | |MOD           |n=%m または |除算のあまりをとる。バージョンにより使用方法が異なる            | |              |n=%      |                                      | |マルチステートメント    |行番号 S S… |空白で区切ればマルチステートメントになる                  | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ GAME−MZインタプリタ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ |GAME IIIに     |MOD(%)   |%A,%B等の使用が出来ないが、%(A)、%(B)の形の単独変数として   | |関する変更点        |         |使うこともできる                              | |              |特殊変数     |GAME IIIの演算のバグは取り除かれており、              | |              |         |??=&−=等の使用もさしつかえない                    | |              |エディット    |SHARP BASICと同等なスクリーンエディタを使える          | |              |JOB打切    |BREAKキーを用いる、JOB一時中止はSPACE             | |−−−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |インタプリタ内部の追加機能 |           |                                    | |CHANGE PAGE   |=$2000 #=1 |$2000からプログラムを実行する                   | |              |           |ページチェンジの後のサーチエンドは自動的にかかり、           | |              |           |そのまま実行を継続できる                        | |TAB           |,=n        |GAME IIIのTABはスペースをプリントするが、          | |              |           |これはカーソルのみ移動する                       | |AND           |n.m        |nとmのANDをとる                          | |OR            |n;m        |nとmのORをとる                           | |XOR           |n!m        |nとmのXORをとる                          | |GET           |;=[=n      |変数[の下位には常に押されたキーのアスキーコードが入る。        | |              |           |プログラムの最初で[=0として上位をクリアする             | |−−−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |オプションルーチン     |              |                                 | |SAVE          |>=$5DD0 ”NAME”|Filename(16文字まで)を付けてカセットにセーブする   | |              |              |先頭ポインタ=からエンドポインタ&までがセーブされる       | |              |              |任意のエリアをセーブしたい時は                  | |              |              |「=先頭アドレス」「ニ(カタカナのニ)=エンドアドレス」の形で  | |              |              |ポインタを操作おく必要がある                   | |LOAD          |>=$5E00       |テープの内容をそのままロードする。                | |              |              |先頭ポインタは自動的に更新されサーチエンドも実行される      | |VERIFY        |>=$5E20       |テープの内容をベリファイする                   | |              |              |内容が異なる場合エラーが表示されるが、OKの場合なにも出ない   | |DOWN          |>=$5E40       |ダウンスクロール(カーソルは移動しない)             | |LEFT          |>=$5E60       |レフトスクロール(カーソルは移動しない)             | |RIGHT         |>=$5E70       |ライトスクロール(カーソルは移動しない)             | |MUSIC         |>=$5E90 data  |ひとつスペースをあけた後の音階データ(SHARPBASICと同じ)| |              |              |を演奏する。データはクオーテーションでくくらず末尾に       | |              |              |必ず■($C8、グラフィック文字)を置く             | |              |              |TEMPOは$119Eの内容を変えればよい(1が最高速)     | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+